From 099da4d22236deecd17b4ebcf9ad3c3a1ee6c755 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Wed, 13 Jun 2001 15:02:35 +0000 Subject: [PATCH] Deep copy dash_list too. (_gdk_fb_gc_new): Set default cap_style before 2001-06-13 Alexander Larsson * gdk/linux-fb/gdkgc-fb.c (gdk_gc_copy): Deep copy dash_list too. (_gdk_fb_gc_new): Set default cap_style before setting values. --- ChangeLog | 7 +++++++ ChangeLog.pre-2-0 | 7 +++++++ ChangeLog.pre-2-10 | 7 +++++++ ChangeLog.pre-2-2 | 7 +++++++ ChangeLog.pre-2-4 | 7 +++++++ ChangeLog.pre-2-6 | 7 +++++++ ChangeLog.pre-2-8 | 7 +++++++ gdk/linux-fb/gdkgc-fb.c | 41 +++++++++++++++++++++++++++-------------- 8 files changed, 76 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3223db57e2..11e94bec00 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2001-06-13 Alexander Larsson + + * gdk/linux-fb/gdkgc-fb.c (gdk_gc_copy): + Deep copy dash_list too. + (_gdk_fb_gc_new): Set default cap_style before + setting values. + 2001-06-12 Alexander Larsson * gdk/linux-fb/gdkkeyboard-fb.c (gdk_keymap_get_default, diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 3223db57e2..11e94bec00 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,10 @@ +2001-06-13 Alexander Larsson + + * gdk/linux-fb/gdkgc-fb.c (gdk_gc_copy): + Deep copy dash_list too. + (_gdk_fb_gc_new): Set default cap_style before + setting values. + 2001-06-12 Alexander Larsson * gdk/linux-fb/gdkkeyboard-fb.c (gdk_keymap_get_default, diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 3223db57e2..11e94bec00 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,10 @@ +2001-06-13 Alexander Larsson + + * gdk/linux-fb/gdkgc-fb.c (gdk_gc_copy): + Deep copy dash_list too. + (_gdk_fb_gc_new): Set default cap_style before + setting values. + 2001-06-12 Alexander Larsson * gdk/linux-fb/gdkkeyboard-fb.c (gdk_keymap_get_default, diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 3223db57e2..11e94bec00 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,10 @@ +2001-06-13 Alexander Larsson + + * gdk/linux-fb/gdkgc-fb.c (gdk_gc_copy): + Deep copy dash_list too. + (_gdk_fb_gc_new): Set default cap_style before + setting values. + 2001-06-12 Alexander Larsson * gdk/linux-fb/gdkkeyboard-fb.c (gdk_keymap_get_default, diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 3223db57e2..11e94bec00 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,10 @@ +2001-06-13 Alexander Larsson + + * gdk/linux-fb/gdkgc-fb.c (gdk_gc_copy): + Deep copy dash_list too. + (_gdk_fb_gc_new): Set default cap_style before + setting values. + 2001-06-12 Alexander Larsson * gdk/linux-fb/gdkkeyboard-fb.c (gdk_keymap_get_default, diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 3223db57e2..11e94bec00 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,10 @@ +2001-06-13 Alexander Larsson + + * gdk/linux-fb/gdkgc-fb.c (gdk_gc_copy): + Deep copy dash_list too. + (_gdk_fb_gc_new): Set default cap_style before + setting values. + 2001-06-12 Alexander Larsson * gdk/linux-fb/gdkkeyboard-fb.c (gdk_keymap_get_default, diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 3223db57e2..11e94bec00 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,10 @@ +2001-06-13 Alexander Larsson + + * gdk/linux-fb/gdkgc-fb.c (gdk_gc_copy): + Deep copy dash_list too. + (_gdk_fb_gc_new): Set default cap_style before + setting values. + 2001-06-12 Alexander Larsson * gdk/linux-fb/gdkkeyboard-fb.c (gdk_keymap_get_default, diff --git a/gdk/linux-fb/gdkgc-fb.c b/gdk/linux-fb/gdkgc-fb.c index b9252d1561..9a927fbd5e 100644 --- a/gdk/linux-fb/gdkgc-fb.c +++ b/gdk/linux-fb/gdkgc-fb.c @@ -75,7 +75,7 @@ _gdk_fb_gc_new (GdkDrawable *drawable, { GdkGC *gc; GdkGCFBData *private; - + gc = GDK_GC (g_object_new (gdk_gc_fb_get_type (), NULL)); private = (GdkGCFBData *)gc; @@ -86,11 +86,11 @@ _gdk_fb_gc_new (GdkDrawable *drawable, private->values.foreground.green = private->values.foreground.blue = 65535; + private->values.cap_style = GDK_CAP_BUTT; + _gdk_fb_gc_calc_state (gc, _GDK_FB_GC_DEPTH); gdk_fb_gc_set_values (gc, values, values_mask); - - private->values.cap_style = GDK_CAP_BUTT; return gc; } @@ -379,33 +379,46 @@ void gdk_gc_copy (GdkGC *dst_gc, GdkGC *src_gc) { GdkGCFBData *dst_private; + GdkGCFBData *src_private; + src_private = GDK_GC_FBDATA (dst_gc); dst_private = GDK_GC_FBDATA (dst_gc); g_return_if_fail (dst_gc != NULL); g_return_if_fail (src_gc != NULL); if (dst_private->clip_region) - gdk_region_destroy(dst_private->clip_region); + gdk_region_destroy (dst_private->clip_region); if (dst_private->values_mask & GDK_GC_FONT) - gdk_font_unref(dst_private->values.font); + gdk_font_unref (dst_private->values.font); if (dst_private->values_mask & GDK_GC_TILE) - gdk_pixmap_unref(dst_private->values.tile); + gdk_pixmap_unref (dst_private->values.tile); if (dst_private->values_mask & GDK_GC_STIPPLE) - gdk_pixmap_unref(dst_private->values.stipple); + gdk_pixmap_unref (dst_private->values.stipple); if (dst_private->values_mask & GDK_GC_CLIP_MASK) - gdk_pixmap_unref(dst_private->values.clip_mask); + gdk_pixmap_unref (dst_private->values.clip_mask); - *dst_private = *GDK_GC_FBDATA (src_gc); + g_free (dst_private->dash_list); + + *dst_private = *src_private; if (dst_private->values_mask & GDK_GC_FONT) - gdk_font_ref(dst_private->values.font); + gdk_font_ref (dst_private->values.font); if (dst_private->values_mask & GDK_GC_TILE) - gdk_pixmap_ref(dst_private->values.tile); + gdk_pixmap_ref (dst_private->values.tile); if (dst_private->values_mask & GDK_GC_STIPPLE) - gdk_pixmap_ref(dst_private->values.stipple); + gdk_pixmap_ref (dst_private->values.stipple); if (dst_private->values_mask & GDK_GC_CLIP_MASK) - gdk_pixmap_ref(dst_private->values.clip_mask); + gdk_pixmap_ref (dst_private->values.clip_mask); + if (dst_private->clip_region) - dst_private->clip_region = gdk_region_copy(dst_private->clip_region); + dst_private->clip_region = gdk_region_copy (dst_private->clip_region); + + if (dst_private->dash_list) + { + dst_private->dash_list = g_malloc (dst_private->dash_list_len); + memcpy (dst_private->dash_list, + src_private->dash_list, + dst_private->dash_list_len); + } } -- 2.30.2